package com.study.mirrorforest.main.model.summaries.dto;

import java.util.Date;

/**
 * 
 * @TableName summaries
 */
public class SummariesDTO {
    /**
     * 
     */
    private Integer id;

    /**
     * 
     */
    private Integer entryId;

    /**
     * 
     */
    private Integer ownerId;

    /**
     * 
     */
    private String type;

    /**
     * 
     */
    private String content;

    /**
     * 
     */
    private Integer tokensUsed;

    /**
     * 
     */
    private String model;

    /**
     * 
     */
    private Date createdAt;

    /**
     * 
     */
    private Date updatedAt;

    /**
     * 
     */
    private Date periodStart;

    /**
     * 
     */
    private Date periodEnd;

    /**
     * 
     */
    public Integer getId() {
        return id;
    }

    /**
     * 
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 
     */
    public Integer getEntryId() {
        return entryId;
    }

    /**
     * 
     */
    public void setEntryId(Integer entryId) {
        this.entryId = entryId;
    }

    /**
     * 
     */
    public Integer getOwnerId() {
        return ownerId;
    }

    /**
     * 
     */
    public void setOwnerId(Integer ownerId) {
        this.ownerId = ownerId;
    }

    /**
     * 
     */
    public String getType() {
        return type;
    }

    /**
     * 
     */
    public void setType(String type) {
        this.type = type;
    }

    /**
     * 
     */
    public String getContent() {
        return content;
    }

    /**
     * 
     */
    public void setContent(String content) {
        this.content = content;
    }

    /**
     * 
     */
    public Integer getTokensUsed() {
        return tokensUsed;
    }

    /**
     * 
     */
    public void setTokensUsed(Integer tokensUsed) {
        this.tokensUsed = tokensUsed;
    }

    /**
     * 
     */
    public String getModel() {
        return model;
    }

    /**
     * 
     */
    public void setModel(String model) {
        this.model = model;
    }

    /**
     * 
     */
    public Date getCreatedAt() {
        return createdAt;
    }

    /**
     * 
     */
    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    /**
     * 
     */
    public Date getUpdatedAt() {
        return updatedAt;
    }

    /**
     * 
     */
    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    /**
     * 
     */
    public Date getPeriodStart() {
        return periodStart;
    }

    /**
     * 
     */
    public void setPeriodStart(Date periodStart) {
        this.periodStart = periodStart;
    }

    /**
     * 
     */
    public Date getPeriodEnd() {
        return periodEnd;
    }

    /**
     * 
     */
    public void setPeriodEnd(Date periodEnd) {
        this.periodEnd = periodEnd;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        SummariesDTO other = (SummariesDTO) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getEntryId() == null ? other.getEntryId() == null : this.getEntryId().equals(other.getEntryId()))
            && (this.getOwnerId() == null ? other.getOwnerId() == null : this.getOwnerId().equals(other.getOwnerId()))
            && (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType()))
            && (this.getContent() == null ? other.getContent() == null : this.getContent().equals(other.getContent()))
            && (this.getTokensUsed() == null ? other.getTokensUsed() == null : this.getTokensUsed().equals(other.getTokensUsed()))
            && (this.getModel() == null ? other.getModel() == null : this.getModel().equals(other.getModel()))
            && (this.getCreatedAt() == null ? other.getCreatedAt() == null : this.getCreatedAt().equals(other.getCreatedAt()))
            && (this.getUpdatedAt() == null ? other.getUpdatedAt() == null : this.getUpdatedAt().equals(other.getUpdatedAt()))
            && (this.getPeriodStart() == null ? other.getPeriodStart() == null : this.getPeriodStart().equals(other.getPeriodStart()))
            && (this.getPeriodEnd() == null ? other.getPeriodEnd() == null : this.getPeriodEnd().equals(other.getPeriodEnd()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getEntryId() == null) ? 0 : getEntryId().hashCode());
        result = prime * result + ((getOwnerId() == null) ? 0 : getOwnerId().hashCode());
        result = prime * result + ((getType() == null) ? 0 : getType().hashCode());
        result = prime * result + ((getContent() == null) ? 0 : getContent().hashCode());
        result = prime * result + ((getTokensUsed() == null) ? 0 : getTokensUsed().hashCode());
        result = prime * result + ((getModel() == null) ? 0 : getModel().hashCode());
        result = prime * result + ((getCreatedAt() == null) ? 0 : getCreatedAt().hashCode());
        result = prime * result + ((getUpdatedAt() == null) ? 0 : getUpdatedAt().hashCode());
        result = prime * result + ((getPeriodStart() == null) ? 0 : getPeriodStart().hashCode());
        result = prime * result + ((getPeriodEnd() == null) ? 0 : getPeriodEnd().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", entryId=").append(entryId);
        sb.append(", ownerId=").append(ownerId);
        sb.append(", type=").append(type);
        sb.append(", content=").append(content);
        sb.append(", tokensUsed=").append(tokensUsed);
        sb.append(", model=").append(model);
        sb.append(", createdAt=").append(createdAt);
        sb.append(", updatedAt=").append(updatedAt);
        sb.append(", periodStart=").append(periodStart);
        sb.append(", periodEnd=").append(periodEnd);
        sb.append("]");
        return sb.toString();
    }
}